// DFS搜索 排序

#include <bits/stdc++.h>
using namespace std;
int n, k, x;
vector<string> S;
vector<string> ans;
void dfs(string s, int step) {
  if (step > k) {
    ans.push_back(s);
    return;
  }
  for (int i = 0; i < n; i++) {
    dfs(s + S[i], step + 1);
  }
}

int main() {
  cin >> n >> k >> x;
  // cin.ignore(); // 忽略换行符
  // S.resize(n);
  for (int i = 0; i < n; i++) {
    // cin >> S[i];
    string t;
    cin >> t;
    S.push_back(t);
  }
  dfs("", 1);
  sort(ans.begin(), ans.end());
  cout << ans[x - 1] << endl;
  return 0;
}
